home *** CD-ROM | disk | FTP | other *** search
-
- Version 4.0
- -----------
-
- * Data files can be compressed under unix and will be uncompressed
- automatically by invoking zcat. 'poly3d-h test.dat.Z > test.hdn' is valid.
-
- * New -H flag to poly3d-h to allow dumping the HIDDEN data (with different
- color/attributes...), -q to run quietly, -o for output file.
-
- * If clause was made much more reasonable by defining comparison and
- Logical operators (<, >=, &&, ||, etc.).
-
- * Function definition is available (ALIAS is retired). See function/procedure
- in docs and function.irt. See plotter.irt for a nontrivial example.
-
- * Assignments need not be within parenthesis any more. Preceeding is
- properly set now.
-
- * New variables are allowed in loops now.
-
- * MSDOS is not really supported (I left DJGCC ifdefs intact although it is
- not tested any more.). EDIT command retired, SYSTEM command modified.
- The main reason is that IRIT can no longer be built in the BC Large model
- and the Huge model will consume pretty much the entire 640k...
- If you have the ability (I do not) to build MSDOS applications with dos
- extenders, and willing to dive in, please let me know.
-
- * The good news is that both OS2 2.x and Window NT 3.1 are fully supported.
-
- * A whole new scheme of display drivers was developed. The display driver is
- a different process. As a result NORMAL, VIEW & INTERACT, BEEP, CLOSED
- functions are retired, and VIEWOBJ controls the display via VIEWxxxx user
- defined functions (in iritinit.irt).
- BEEP, VIEW and INTERACT functions are emulated in iritinit using a
- user defined function. NORMALs as well as other view states can be set via
- user defined function VIEWSTATE.
- poly3d was retired and is replaced by the display drivers which
- accepts command lines. In other words, the graphics device driver serves as
- display program as well.
-
- * Sweep has a new fourth parameter to allow setting normal of orientation
- (pseudo frenet) frame.
-
- * New line illustration tool - illustrt.
-
- * List can now be in any length and are updated dynamically.
-
- * Attributes now can handle spaces by quoting the data:
- attrib( obj, "rgbcolor", "255 0 255" );
- see attrib command for more.
-
- * New filter irit2xfg - IRIT to xfig.
- * New filter irit2plg - IRIT to REND386 polygonal format
- * New filter irit2scn - IRIT to scn (close to nff format).
- * New filter irit2dxf - filters to/from DXF. Not fully functional.
- * New filter dxf2irit
- * New filter irit2ps - more versatile filter to PostScript.
- * New IRIT commands
- + THISOBJ - returns the type of the object.
- + PRINTF - a formatted printing routine, C printf style.
- + BOOLONE - using a single closed curve subdivided into four segments
- as bool sum input.
- + BSP2BZR - convertion from Bspline to Bezier curves/surfaces.
- + BZR2BSP - convertion from Bezier to Bspline curves/surfaces.
- + FFCOMPAT - making two curves/surfaces compatible (required for
- SMORPH morphing code)
- + HOMOMAT - low level homogeneous matrix constructor.
- + SDERIVE/CDERIVE - compute derivatives.
- + SMERGE - merge two surfaces into one.
- + SMORPH - A convex blend between two compatible surfaces (3d morphing).
- + SNRMLSRF - surface normal.
- + SYMBPROD/SYMBDPROD/SYMBCPROD/SYMBSUM/SYMBDIFF - a whole set of
- symbolic computation tools.
- + CZEROS - find the zero set of a curve.
- + CEXTREMES - find the extreme set of a curve.
- + NIL - returns an empty list.
- + LISTSIZE - returns the size of a list/poly list/vertex list.
- + COORD - extract a single coordinate from an object.
- + AOFFSET - adaptive, error bounded, offset (slow!).
- + COERCE - coerction of objects.
- + COMPOSE - curve curve and surface curve composition.
- + PRISA - planar layout of surfaces.
- + CINFLECT - find the inflection points of a curve.
- + CCRVTR - curvature properties of curves.
- + CCINTER - curve curve intersection function.
- + POLY can accept point and ctlpt types. Has a new second polyline/gon
- parameter.
- + ADAPISO - adaptive isocurve extraction.
- + CRVPTDST - nearest point on a curve to a point solution (min dist param).
- + CRVLNDST - nearest point on a curve to a line solution (min dist param).
- + PDOMAIN - returns the parametric domain of a curve or a surface.
-
- * Ability to dump UV values of vertices of polygons created from freeform
- surfaces (mainly for 2D texture mapping). See CagdSrf2Polygons and skeleton
- example in iritfltr directory.
-
- * ATTRIButes can be set to any object, not just geometry. attributes names
- are case insensetive.
-
- * POINTs and PLANEs are now supported objects as well. VECTORs, POINTs,
- CTLPTs are also displayable objects.
-
- * color() and attrib() now can work on lists, in which all elements
- in list will be appropriately updated.
-
- * More overloaded operators:
- String + String -> String
- String ^ Real -> String
- String + Real -> String
- Point + Vector -> Vector
- Point * Real -> Point (Scale)
- Point * Mat -> Point (Transform)
- -Point -> Point (scale by -1)
- -Plane -> Plane (scale by -1)
-
- * New irit configuration variable - FloatFrmt.
-
- * New prsp_mat variable.
-
- * Coplanar polygons are now handled. See coplanar variable and solid2.irt
- for example.
-
- * Boolean opeartions are almost three times faster using bbox and sorting
- optimizations! See polysort variable.
-
- * All utilities now support '-' for stdin read. For example
- poly3d-h example.dat | irit2ps - > example.ps
-
- * Spline degree raising is implemented using the new symbolic tools.
-
-
- Here is what is new in version 3.0:
- -----------------------------------
- 1. Normals are fully supported now. Although this increases memory requirements
- (mainly a problem on IBM PC) all files dumped from IRIT now support normals
- as well.
- 2. A new cut Boolean operation (overloading '/', i.e. C = A / B assigns to C
- the regions in A out B).
- A new merge Boolean operation (overloading '^', i.e. C = A ^ B assigns to
- C all polygons of A and B merged (with no intersection tests.).
- 3. Support for freeform curves and surfaces (Bezier/NURBS).
- All Boolean are still done using polygonal data the surfaces are converted
- into (No intention to change that in the near future - direct Booleans on
- surfaces requires support of trimmed surfaces and believe me - it is HARD).
- However, quite a few tools to manipulate and maintain the curves and surfaces
- are provided and include:
- a. direct creation of curves and surfaces by specifying control mesh/poly.
- b. evaluation of surface/curve, tangents, normals.
- c. subdivision/refinement.
- d. degree raising (only Bezier).
- e. high level surface creation: ruled srf/extrude/srf of revolution/sweep.
- f. curve constructor out of curve/point pieces.
- g. conversion to polygons of surfaces including normals.
- 4. Support for SGI 4D systems using gl has been added.
- 5. lists are much more enhanced now and more functions can now get a list
- of objects where before they could get a single object only (for example
- ability to dump to file/read from file list of objects instead of one).
- This enable merging the *.ply and *.mat into single data files *.dat which
- also include the freeform data (curves and surfaces).
- 6. Ability to handle closed and open loops within the same polygon (see
- cubes.irt).
- 7. Much improved documentation.
-